/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package BaseDatos.GeneradorMySQL;

import Modelo.Empleado;
import java.util.ArrayList;

/**
 *
 * @author Administrador
 */
public class EmpleadosMySQL {

////////////////////////////////////////////////////////////////////////////////
// Constructores
////////////////////////////////////////////////////////////////////////////////
    
    /**
     * constructor por defecto
     */
    public EmpleadosMySQL(){
        
    }

////////////////////////////////////////////////////////////////////////////////
// Interfaz de la clase
////////////////////////////////////////////////////////////////////////////////

    /**
     * construye la instruccion MySQL para el registro de un nuevo empleado
     * @param _nuevoEmpleado
     * @return Devuelve la instruccion construida
     */
    public String Registro(Empleado _nuevoEmpleado){
        String InstruccionMySQL = "INSERT INTO empleados (Clave, Nombre, ActividadLaboral)"
                + "VALUES ('" + _nuevoEmpleado.obtenerClaveEmpleado() + "','"
                + _nuevoEmpleado.obtenerNombre() + "','"
                + _nuevoEmpleado.obtenerTipoEmpleado() + "')";
        return InstruccionMySQL;
    }
    
    /**
     * construye la instruccion MySQL para la consulta general de los empleados
     * @param _claveNombre
     * @return Devuelve la instruccion construida
     */
    public String consultaGeneral(String _claveNombre){
        String instruccionMySQL;
        if(_claveNombre.trim().equals("")){
            instruccionMySQL = "SELECT * FROM empleados";
        }else{
            instruccionMySQL = "SELECT * FROM empleados WHERE "
                    + "Clave LIKE '" + _claveNombre + "%' "
                    + "OR Nombre LIKE '%" + _claveNombre + "%' ";
        }
        return instruccionMySQL;
    }
    
    /**
     * Construye la instruccion para la busqueda de un empleado apartir de su clave
     * @param _clave
     * @return devuelve la instruccion construida
     */
    public String consultaEmpleadoClave(String _clave){
        String instruccionMySQL = "SELECT * FROM empleados WHERE "
                + "Clave = '" + _clave + "' LIMIT 1";
        return instruccionMySQL;
    }
    
    /**
     * contruye la isntruccionMySQl para la busqueda de un empleado apartir de su nombre
     * @param _nombreCompleto
     * @return devuelve la instruccionMySQL
     */
    public String consultarEmpleadoNombre(ArrayList<String> _nombreCompleto){
        final int nombre = 0;
        String instruccionMySQL = "SELECT * FROM empleados WHERE "
                + "Nombre LIKE '%" + _nombreCompleto.get(nombre) + "%'";
                _nombreCompleto.remove(nombre);
        while(!_nombreCompleto.isEmpty()){
            instruccionMySQL = instruccionMySQL.concat(" AND Nombre LIKE '%" 
                    + _nombreCompleto.get(nombre) + "%'");
            
            _nombreCompleto.remove(nombre);
        }
        
        instruccionMySQL = instruccionMySQL.concat(" LIMIT 1");
        return instruccionMySQL;
    }
    
////////////////////////////////////////////////////////////////////////////////
// Metodos privados
////////////////////////////////////////////////////////////////////////////////
    
////////////////////////////////////////////////////////////////////////////////
// Declaracion de variables
////////////////////////////////////////////////////////////////////////////////
}
